package org.code.boot.mapper.common;

import java.util.List;
import org.code.boot.domain.common.ComFavorite;

/**
 * 通用收藏Mapper接口
 * 
 * @author ruoyi
 * @date 2023-08-27
 */
public interface ComFavoriteMapper
{
    /**
     * 查询通用收藏
     * 
     * @param favoriteId 通用收藏主键
     * @return 通用收藏
     */
    public ComFavorite selectBizFavoriteByFavoriteId(Long favoriteId);

    /**
     * 查询通用收藏列表
     * 
     * @param comFavorite 通用收藏
     * @return 通用收藏集合
     */
    public List<ComFavorite> selectBizFavoriteList(ComFavorite comFavorite);

    /**
     * 新增通用收藏
     * 
     * @param comFavorite 通用收藏
     * @return 结果
     */
    public int insertBizFavorite(ComFavorite comFavorite);

    /**
     * 修改通用收藏
     * 
     * @param comFavorite 通用收藏
     * @return 结果
     */
    public int updateBizFavorite(ComFavorite comFavorite);

    /**
     * 删除通用收藏
     * 
     * @param favoriteId 通用收藏主键
     * @return 结果
     */
    public int deleteBizFavoriteByFavoriteId(Long favoriteId);

    /**
     * 批量删除通用收藏
     * 
     * @param favoriteIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizFavoriteByFavoriteIds(Long[] favoriteIds);

    /**
     * 检查是否已收藏
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @param userId 用户ID
     * @return 收藏记录
     */
    public ComFavorite checkFavoriteExists(String businessType, Long businessId, Long userId);

    /**
     * 取消收藏
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @param userId 用户ID
     * @return 结果
     */
    public int cancelFavorite(String businessType, Long businessId, Long userId);

    /**
     * 统计收藏数
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @return 收藏数
     */
    public int countFavorites(String businessType, Long businessId);
}